package cn.blnp.net.flowable.boot.service;

import org.flowable.task.api.Task;
import org.flowable.task.api.history.HistoricTaskInstance;

import java.util.List;

/**
 * <h3>任务知会接口列表</h3>
 *
 * @author <a href="mailto:blnp.yibin@qq.com">lyb</a>
 * @version 1.0
 * @since 2025/6/20 10:22
 */
public interface TaskCarbonCopyService {

    /**
     * <p><b>用途:任务知会接口<b></p>
     * @author <a href="mailto:blnp.yibin@qq.com">lyb</a>
     * @since 10:23 2025/6/20
     * @params [taskId, userIds]
     * @param taskId 知会任务ID
     * @param userIds 知会用户列表
     * @return void
    **/
    public void executeTaskCarbonCopy(String taskId, List<String> userIds);

    /**
     * <p><b>用途:查询指定用户运行中的知会任务<b></p>
     * @author <a href="mailto:blnp.yibin@qq.com">lyb</a>
     * @since 10:36 2025/6/20
     * @params [userId] 
     * @param userId 
     * @return java.util.List<org.flowable.task.api.Task>
    **/
    public List<Task> getCarbonCopyTasks(String userId);

    /**
     * <p><b>用途:查询指定用户的历史知会任务<b></p>
     * @author <a href="mailto:blnp.yibin@qq.com">lyb</a>
     * @since 13:40 2025/6/20
     * @params [userId] 
     * @param userId 
     * @return java.util.List<org.flowable.task.api.history.HistoricTaskInstance>
    **/
    public List<HistoricTaskInstance> getHistoricCarbonCopyTasks(String userId);
}
